package org.erp.spu.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.erp.common.page.PageQueryModel;
import org.erp.spu.entity.SpuReleaseGroup;
import org.erp.spu.entity.bo.SpuReleaseGroupBo;
import org.erp.spu.entity.dto.SpuReleaseGroupDto;
import org.erp.spu.entity.vo.ReleaseGroupVo;
import org.erp.spu.entity.vo.SpuReleaseGroupVo;

import java.util.List;

public interface SpuReleaseGroupService extends IService<SpuReleaseGroup> {

    /**
     * 获取发布组列表
     * @param spuReleaseGroupBo 查询参数
     * @return 列表数据
     */
    List<SpuReleaseGroupVo> getList(SpuReleaseGroupBo spuReleaseGroupBo);

    /**
     * 分页查询发布组
     * @param spuReleaseGroupDto 查询参数
     * @return 分页结果
     */
    PageQueryModel<SpuReleaseGroupVo> getListByPage(SpuReleaseGroupDto spuReleaseGroupDto);

    /**
     * 新增发布组
     * @param spuReleaseGroupDto 发布组数据
     * @return 操作结果
     */
    boolean addSpuReleaseGroup(SpuReleaseGroupDto spuReleaseGroupDto);

    /**
     * 修改发布组
     * @param spuReleaseGroupDto 发布组数据
     * @return 操作结果
     */
    boolean updateSpuReleaseGroup(SpuReleaseGroupDto spuReleaseGroupDto);

    /**
     * 根据ID获取详情
     * @param id 主键
     * @return 详情
     */
    SpuReleaseGroupVo getSpuReleaseGroupVoById(Long id);
    /**
     * 根据品类ID获取发布组列表
     * @param categoryId 品类ID
     * @return 发布组列表
     */
    List<ReleaseGroupVo> getListByCategoryId(Long categoryId);
}
